/*
  函数与模块化编程2_判断质数
  题目描述
    输入一个正整数 n，判断 n 是否是质数, 若是则输出"YES"，否则输出"NO"
  输入描述
    一个正整数 n
  输出描述
    "YES"或"NO"
  样例1
    输入
      109
    输出
      YES
  样例2
    输入
      13717421
    输出
      NO
  提示
    1 ≤ n ≤ 10^8
*/

#include<bits/stdc++.h>

using namespace std;

/*
  说明:
    由于题目中 n 的取值范围比较大，最大可以到 10^8，传统的判断是否是质数方法容易超时!
*/

int main() {
    long long n;

    cin >> n;

    /*
     注意:
       由于 n 的取值范围为 1 ≤ n ≤ 10^8，n 可能为 1,2,3,4 ...
       其中, n 为 1,2,3 时，程序执行到上面的 for 循环时，程序不会执行 for 循环体中的代码，
             其中 n 为 2,3 时，n 是质数; n 为 1 时, n 为非质数。
    */
    if (n == 1) {
        cout << "NO";
        return 0;
    }

    if (n <= 3) {
        cout << "YES";
        return 0;
    }

    for (long long i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            cout << "NO";
            return 0;
        }
    }

    return 0;
}